package org.ash.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.ash.user.pojo.User;
import org.ash.user.pojo.dto.*;

import java.util.List;

public interface UserService extends IService<User>  {

    /**
     * 条件查询用户
     * @param userQueryDTO
     * @return
     */
    List<User> queryUsers(UserQueryDTO userQueryDTO);

    /**
     * 新增用户
     * @param userUpdateDTO
     * @return
     */
    User addUser(UserUpdateDTO userUpdateDTO);

    /**
     * 编辑用户信息
     * @param id
     * @param userUpdateDTO
     * @return
     */
    User updateById(Long id, UserUpdateDTO userUpdateDTO);

    /**
     * 用户名登录
     * @param loginFormDTO
     * @return
     */
    User loginWithUsername(LoginFormDTO loginFormDTO);

    /**
     * 验证码登录
     * @param loginFormDTO
     * @return
     */
    User loginWithPhone(LoginPhoneFormDTO loginFormDTO);

    /**
     * 用户注册
     *
     * @param registerFormDTO 用户参数对象
     * @return
     */
    User register(RegisterFormDTO registerFormDTO);

    /**
     * 发送验证码
     *
     * @param phone   手机号码
     */
    String sendCode(String phone);
}
